package com.ruifu.worksheet.mapper;

import com.fhzncloud.cloud.common.security.service.CloudUser;
import com.ruifu.worksheet.dto.WsCustomizeTypeDTO;
import com.ruifu.worksheet.vo.WsCustomizeTypeVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 项目类型DAO
 * @author yuanyundi
 * @date 2020/04/14
 */
@Mapper
public interface WsCustomizeTypeMapper {
    /**
     * 条件查询变更单类型集合
     *
     * @param wsCustomizeTypeVO 变更单类型VO
     * @param cloudUser 登录人员信息
     * @return List<WsCustomizeTypeDTO> 数据集合
     */
    List<WsCustomizeTypeDTO> findAll(@Param("wsCustomizeTypeVO") WsCustomizeTypeVO wsCustomizeTypeVO, @Param("cloudUser") CloudUser cloudUser);

    /**
     * 根据id查询变更单类型数据
     *
     * @param ctTypeId 主键id
     * @return WsCustomizeTypeDTO 变更单类型DTO
     */
    WsCustomizeTypeDTO findById(@Param("ctTypeId") Long ctTypeId);

    /**
     * 新增变更单类型数据
     *
     * @param wsCustomizeTypeDTO 变更单类型DTO
     * @param cloudUser 登录人员信息
     */
    void insert(@Param("wsCustomizeTypeDTO") WsCustomizeTypeDTO wsCustomizeTypeDTO, @Param("cloudUser") CloudUser cloudUser);

    /**
     * 变更单类型修改
     *
     * @param wsCustomizeTypeDTO 变更单类型DTO
     * @param cloudUser 登录人员信息
     */
    void update(@Param("wsCustomizeTypeDTO") WsCustomizeTypeDTO wsCustomizeTypeDTO, @Param("cloudUser") CloudUser cloudUser);

    /**
     * 启用/停用/删除数据
     *
     * @param wsCustomizeTypeDTO 变更类型DTO
     * @param cloudUser 用户登录信息
     */
     void operEntityById(@Param("wsCustomizeTypeDTO") WsCustomizeTypeDTO wsCustomizeTypeDTO,@Param("cloudUser") CloudUser cloudUser);

    /**
     * 变更单类型 新增/修改 提交校验
     *
     * @param ctClass 类别
     * @param ctName 类型名称
     * @return int 总条数
     */
     int countRowForName(@Param("ctClass") int ctClass,@Param("ctName") String ctName,@Param("cloudUser") CloudUser cloudUser);

    /**
     * 变更单类型 新增/修改 提交校验
     *
     * @param ctCode 类型编号
     * @param cloudUser 登录人员信息
     * @return Integer 查询条数
     */
    int countRowForCode(@Param("ctCode") String ctCode,@Param("cloudUser") CloudUser cloudUser);

    /**
     * 查询源账套数据
     *
     * @param sourceSetId 源setid
     * @return List<WsCustomizeTypeDTO> 数据集合
     */
    List<WsCustomizeTypeDTO> selectListBySetId(@Param("sourceSetId") Long sourceSetId);

    /**
     * 插入目标账套数据
     *
     * @Param wsCustomizeTypeDTO 工作单类型
     */
    void insertWsTypeDTO(@Param("wsCustomizeTypeDTO") WsCustomizeTypeDTO wsCustomizeTypeDTO);
}
